from sqlalchemy import Column, String, Text, ForeignKey, Enum
from sqlalchemy.orm import relationship
import enum
from app.models.base import Base

class PromptType(enum.Enum):
    """
    提示词类型枚举
    """
    NORMAL = "normal"
    MASTER = "master"

class Prompt(Base):
    """
    提示词模型
    """
    # 基本信息
    title = Column(String(200), nullable=False)
    description = Column(Text, nullable=True)
    
    # 提示词内容
    original_text = Column(Text, nullable=False)  # 原始中文描述
    enhanced_text = Column(Text, nullable=False)  # 增强后的英文描述
    prompt_type = Column(Enum(PromptType), nullable=False)
    
    # 关联信息
    user_id = Column(Integer, ForeignKey("user.id"), nullable=False)
    user = relationship("User", backref="prompts")
    
    # 元数据
    tags = Column(String(200), nullable=True)  # 标签，用逗号分隔
    parameters = Column(Text, nullable=True)  # JSON字符串存储参数
    
    def __repr__(self):
        return f"<Prompt {self.title}>" 